#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author:zhengxin
@file: handle_excel.py
@time: 2022/6/17  10:23
# @describe: xlrd 操作excel
"""
import xlrd


"""
函数功能：获取excel用例数据
需求分析：
    - 需要获取具体的哪些数据：
        - 用例描述
        - 请求数据
        - 预期的响应
    - 数据怎么给你，给谁，以什么形式给？(列表/字典/字符串/集合)
    
方案：
    - 库选项：xlrd
    - 自动化框架：pytest
    - 函数的入参：
        - 文件的路径
        - 获取对应表
        - 具体需要获取的数据：可能会跟进需求变化而变化-可变数量参数
    - 函数的出参：数据类型-适合 pytest的数据类型
"""

# 1.定义 excel获取数据函数
# 函数的形参：函数定义时候，定义的参数
def get_excel_data(file_path, sheet_name, *data):
    """
    excel获取数据函数
    :param file_path:  excel 文件路径
    :param sheet_name: 具体操作的 sheet 名
    :param data: 获取对应的数据
    :return: 返回数据类型
    """
    # 2.打开excel文件-并保留样式
    work_book = xlrd.open_workbook(file_path, formatting_info=True)

    # 3.获取对应要操作的表-通过表名、表下标
    work_sheet = work_book.sheet_by_name(sheet_name)
    # work_book.sheet_by_index()
    # 获取所有表名-列表
    print(work_book.sheet_names())

    # 4.获取数据
    # 获取一行数据
    print(work_sheet.row_values(0))
    # 获取一列数据
    print(work_sheet.col_values(0))
    # 获取单元格数据
    print(work_sheet.cell(0, 0).value)

    for row in range(1, 5):
        # 请求参数
        req_body = work_sheet.cell(row, 7).value
        print(req_body)
        # 预期响应
        exp_data = work_sheet.cell(row, 8).value
        print(exp_data)


if __name__ == '__main__':
    get_excel_data('exam.xls', 'Sheet1')



